class: center, middle, inverse, title-slide .title[ # Del Laboratorio a mi Compu con R ] .author[ ### M.C. Anahí Canedo Téxon ] .date[ ### 2023-07-20 ] --- # Código de Conducta [https://rladiesmx.netlify.app/codigo_de_conducta/](https://rladiesmx.netlify.app/codigo_de_conducta/) R-Ladies Mexico está dedicado a proveer una experiencia libre de acoso para todas y todos sus participantes. No toleramos ninguna forma de acoso en cualquiera de sus formas. Este código de conducta aplica a todos los espacios de R-Ladies Mexico, incluyendo meetups, Twitter, Slack, listas de correo, tanto en sesiones en linea como fuera de ella. Cualquier persona que viole este código de conducta podrá ser sancionada o expulsada de cualquiera de estos espacios a discreción del comité organizador. --- # TODOS LO ODIAN O TODOS LO AMAN  --- ## Historia * R es un lenguaje de programación creado por los estadísticos Ross Ihaka y Robert Gentleman en 1996.  --- ## ¿Porqué usamos R? * R, es software libre,gratuito * La sintaxis de R es muy simple e intuitiva * **CÓDIGO ABIERTO** Licencia GNU:Libertad del uso, modificación y distribución del software. * R se utiliza para el análisis de datos cuantitativos y cualitativos en diferentes disciplinas. * Permite además desarrollo de software especializado, por ello, la gran diversidad de paquetes. --- ## COMUNIDAD DE R ## R-Community: https://r-community.org/usergroups/ ## CDBS: https://comunidadbioinfo.github.io/es/  --- ## RLadiesGlobal: https://www.rladies.org/ ## RLadiesMéxico: https://rladiesmx.netlify.app/  --- ## R Base y Paquetes **R base** * Las funciones disponibles viven en el R HOME es el directorio donde R esta instalado. * **R Base** contiene las funciones básicas del lenguaje para leer y manipular datos, algunas funciones gráficas y algunas funciones estadísticas (regresión lineal y análisis de varianza). **CRAN**: **Comprehensive R Archive Network (CRAN)** * Los archivos necesarios para instalar R, código fuente, las instrucciones de instalación, etc * Actualmente hay ~20,000 paquetes depositados en el CRAN, otros en BioConductor y GitHub. **Biocondutor** Se enfoca al desarrollo y distribución de paquetes de R destinados al anáiisis de datos genómicos, incluyendo herramientas para manipular datos de microarreglos, NGS, single cell genomics, etc. --- ## ¿Cómo funciona R? * R es un lenguaje Orientado a Objetos. * R guarda los resultados como un “objeto”, de tal manera que se puede hacer un analisis sin necesidad de mostrar su resultado inmediatamente * Las variables, datos, funciones, resultados, se guardan en la memoria activa del computador en forma de objetos. * El usuario puede modificar o manipular estos objetos con operadores y funciones. * Todas las acciones en R se realizan con objetos que son guardados en la memoria activa del ordenador, sin usar archivos temporales. {width='80%'height=80%} --- ## R y Rstudio ** [R](https://cran.r-project.org/). Es el lenguaje de programació - [RStudio](https://posit.co/download/rstudio-desktop/). Es una aplicación de desarrollo de RStudio Inc. Esta app funciona como un entorno de desarrollo integrado (IDE), proporcionando a los usuarios herramientas optimizadas para el lenguaje de programación R. Permite construir scripts, compilar códigos, crear gráficos e incluso trabajar con varios conjuntos de datos en un entorno altamente capacitado. --- ## 1. Interfaz de R Studio  --- # 2. PRIMEROS PASOS EN R: CREACIÓN Y MANIPULACIÓN DE OBJETOS --- **Asignar objetos**: Para crear nuevos objetos se denotado con el símbolo “->” o “<-”, incluso con "=". ```r a<-20 20 -> a a=20 ``` --- * Almacenar variables en un objeto: ```r f1 <- "manzana" f2 <- "pera" ``` --- ## R cómo calculadora * Operaciones simples ```r 8+9 #sumas ``` ``` ## [1] 17 ``` ```r 1000-84 #restas ``` ``` ## [1] 916 ``` ```r 200/9 #división ``` ``` ## [1] 22.22222 ``` ```r 5*10 #multiplicación ``` ``` ## [1] 50 ``` ```r 10^2 #exponenciales ``` ``` ## [1] 100 ``` --- * Operaciones con objetos ```r a=10 b=50 c=2 (a+b)^c ``` ``` ## [1] 3600 ``` --- ## Concatenar elementos Función c() nos permite almacenar un conjuntos de datos (numéricos, caracteres, etc.) ```r pares <- c(2,4,6,8,10) colores <- c("azul","morado","rojo") ``` --- ## TO DO: 1. Crea un objeto con tu edad 2. Crea un objeto que almacene el resultado de multiplicar 100 x 30 3. Crea un objeto que almacene los nombres de los integrantes de tu familia --- # 3. CARGAR BASES DE DATOS --- #Conoce tu directorio actual de trabajo, copia la estructura de la dirección y modificala de acuerdo al sitio dónde se encuentren tus archivos. ```r getwd() ``` ``` ## [1] "/home/anahi/Escritorio/Meetup_Julio2023" ``` #Establece tu directorio de trabajo ```r #Ejemplo: Estoy en escritorio ("/home/anahi/Escritorio/") y quiero moverme al Repositorio del Curso: setwd("/home/anahi/Escritorio/Meetup_Julio2023") ``` --- **Archivos .csv** Los archivos con extensión .csv pueden ser leídos empleando la función read.csv(). ```r Experimento <- read.csv("BiomasaHongos.csv") ``` --- # 4. FUNCIONES PARA EXPLORAR UN DATAFRAME --- ```r str(Experimento) #obtener el tipo de objeto/vector ``` ``` ## 'data.frame': 30 obs. of 3 variables: ## $ Especie : chr "Fsolani" "Fsolani" "Fsolani" "Fsolani" ... ## $ Tratamiento: chr "Control" "Control" "Control" "Control" ... ## $ Biomasa : num 4.6 3.1 4.4 5.2 3.7 1.6 2.1 2.2 3.2 1.7 ... ``` ```r dim(Experimento) #obtener las dimensiones del objetos ``` ``` ## [1] 30 3 ``` ```r names(Experimento) #debido a qué es un data frame (compuesto de columnas y renglones), queremos conocer el nombre de las etiquetas de cada columna ``` ``` ## [1] "Especie" "Tratamiento" "Biomasa" ``` ```r #---------- ``` --- ## Acceder a los elementos, o columnas del data frame ```r # Experimento$ # Experimento$Especie ?attach() # Permite acceder a los objetos en la base de datos simplemente dando sus nombres. attach(Experimento) ``` --- ```r head(Especie) ``` ``` ## [1] "Fsolani" "Fsolani" "Fsolani" "Fsolani" "Fsolani" "Fsolani" ``` ```r ncol(Experimento) #obtener el numero de columnas del data frame ``` ``` ## [1] 3 ``` ```r nrow(Experimento) #obtener el numero de renglones del data frame ``` ``` ## [1] 30 ``` --- ## Seleccionar elementos de un Experimento frame nombre[renglones, columnas] ```r Experimento[1,] #Seleccionar el renglón 1 ``` ``` ## Especie Tratamiento Biomasa ## 1 Fsolani Control 4.6 ``` ```r Experimento[,1] #Seleccionar la columna 1 ``` ``` ## [1] "Fsolani" "Fsolani" "Fsolani" "Fsolani" "Fsolani" "Fsolani" ## [7] "Fsolani" "Fsolani" "Fsolani" "Fsolani" "Fsolani" "Fsolani" ## [13] "Fsolani" "Fsolani" "Fsolani" "AspNiger" "AspNiger" "AspNiger" ## [19] "AspNiger" "AspNiger" "AspNiger" "AspNiger" "AspNiger" "AspNiger" ## [25] "AspNiger" "AspNiger" "AspNiger" "AspNiger" "AspNiger" "AspNiger" ``` --- ```r Experimento[1:5,] #Seleccionar un rango de renglones ``` ``` ## Especie Tratamiento Biomasa ## 1 Fsolani Control 4.6 ## 2 Fsolani Control 3.1 ## 3 Fsolani Control 4.4 ## 4 Fsolani Control 5.2 ## 5 Fsolani Control 3.7 ``` --- ```r Experimento[-1,] #Excluir el renglón 1 ``` ``` ## Especie Tratamiento Biomasa ## 2 Fsolani Control 3.10 ## 3 Fsolani Control 4.40 ## 4 Fsolani Control 5.20 ## 5 Fsolani Control 3.70 ## 6 Fsolani Propiconazol 1.60 ## 7 Fsolani Propiconazol 2.10 ## 8 Fsolani Propiconazol 2.20 ## 9 Fsolani Propiconazol 3.20 ## 10 Fsolani Propiconazol 1.70 ## 11 Fsolani Biomolecula 0.98 ## 12 Fsolani Biomolecula 1.46 ## 13 Fsolani Biomolecula 2.10 ## 14 Fsolani Biomolecula 1.80 ## 15 Fsolani Biomolecula 1.60 ## 16 AspNiger Control 5.42 ## 17 AspNiger Control 4.91 ## 18 AspNiger Control 4.61 ## 19 AspNiger Control 6.20 ## 20 AspNiger Control 3.10 ## 21 AspNiger Propiconazol 1.00 ## 22 AspNiger Propiconazol 2.44 ## 23 AspNiger Propiconazol 1.30 ## 24 AspNiger Propiconazol 2.33 ## 25 AspNiger Propiconazol 0.64 ## 26 AspNiger Biomolecula 0.00 ## 27 AspNiger Biomolecula 0.50 ## 28 AspNiger Biomolecula 0.78 ## 29 AspNiger Biomolecula 1.30 ## 30 AspNiger Biomolecula 0.54 ``` --- ```r Experimento[-(1:10),] #Excluir los renglones del 1 al 10 ``` ``` ## Especie Tratamiento Biomasa ## 11 Fsolani Biomolecula 0.98 ## 12 Fsolani Biomolecula 1.46 ## 13 Fsolani Biomolecula 2.10 ## 14 Fsolani Biomolecula 1.80 ## 15 Fsolani Biomolecula 1.60 ## 16 AspNiger Control 5.42 ## 17 AspNiger Control 4.91 ## 18 AspNiger Control 4.61 ## 19 AspNiger Control 6.20 ## 20 AspNiger Control 3.10 ## 21 AspNiger Propiconazol 1.00 ## 22 AspNiger Propiconazol 2.44 ## 23 AspNiger Propiconazol 1.30 ## 24 AspNiger Propiconazol 2.33 ## 25 AspNiger Propiconazol 0.64 ## 26 AspNiger Biomolecula 0.00 ## 27 AspNiger Biomolecula 0.50 ## 28 AspNiger Biomolecula 0.78 ## 29 AspNiger Biomolecula 1.30 ## 30 AspNiger Biomolecula 0.54 ``` --- ## Explorar las categorias o los diferentes niveles de los grupos de tratamientos en el experimento ```r Tratamiento <- as.factor(Tratamiento) levels(Tratamiento) ``` ``` ## [1] "Biomolecula" "Control" "Propiconazol" ``` ## Contar el número de categorías que resultan de la función anterior: ## Funciones aninadas ```r length(levels(Tratamiento)) #¿cuántos tratamientos se realizaron en el experimento? ``` ``` ## [1] 3 ``` --- ## ¿Cuántas especies se utilizaron? ```r length(levels(Especie)) ``` ``` ## [1] 0 ``` ```r Especie <- as.factor(Especie) ``` --- ## ¿Cuántas repeticiones se realizaron por especie? ## Hacer un subset de cada uno de los grupos de tratamientos en el experimento ?subset() ```r spp1 <- subset(Experimento, Especie =="Fsolani") spp2 <- subset(Experimento, Especie =="AspNiger") ``` --- ## TO DO: 1. ¿Cuántas repeticiones se realizaron por tratamiento? Crear un subset para cada tratamiento 2. Explora el número de elementos de cada subset con las funciones dim() ncol() nrow() leveles() length() --- ## ALGUNAS FUNCIONES MATEMÁTICAS ```r sum(Biomasa) ``` ``` ## [1] 74.81 ``` ```r mean(Biomasa) ``` ``` ## [1] 2.493667 ``` ```r sd(Biomasa) ``` ``` ## [1] 1.688291 ``` ```r var(Biomasa) ``` ``` ## [1] 2.850327 ``` --- ## 5. GENERACIÓN DE GRÁFICOS ```r plot(density(Biomasa)) # ¿se ajustan a una campana tipo gaus?, la funcion plot() anidada con density() me ayuda a visualizar la distribucion de mis datos ``` <!-- --> --- ```r boxplot(Biomasa~ Tratamiento) #Boxplot por tratamiento ``` <!-- --> --- ## 6. TEST ESTADÍSTICO ```r shapiro.test(Biomasa) ``` ``` ## ## Shapiro-Wilk normality test ## ## data: Biomasa ## W = 0.9319, p-value = 0.05518 ``` #¿el valor de p, es mayor, o menor, a 0.05? #p>0.05: HAY NORMALIDAD #P<0.05: NO HAY NORMALIAD --- # TO DO: Pide el manual de ayuda de la función boxplot y explora algunos argumentos, agrega detalles cómo: 1. Color a las cajas 2. Título del gŕafico 3. Cambia la etiqueta del eje x, por "Antifúngicos" 4. Cambia la etiqueta del eje y por "Biomasa (gr.)" --- # Exportar figuras ```r #png("Experimento.png") boxplot(Biomasa~ Tratamiento, col= c("blue","red","green")) ``` <!-- --> ```r #dev.off() ``` ---